// 多语言辅助工具函数

/**
 * 获取常量数组的多语言版本
 * @param {Array} constants - 常量数组
 * @param {Function} t - i18n翻译函数，通常是this.$t
 * @returns {Array} 包含多语言翻译的常量数组
 */
export function getI18nConstants(constants, t) {
  if (!constants || !Array.isArray(constants) || !t || typeof t !== 'function') {
    return constants || [];
  }
  
  return constants.map(item => ({
    ...item,
    name: item.nameKey ? t(item.nameKey) : item.name
  }));
}

/**
 * 根据ID获取常量项的多语言名称
 * @param {Array} constants - 常量数组
 * @param {number|string} id - 常量项的ID
 * @param {Function} t - i18n翻译函数，通常是this.$t
 * @returns {string} 翻译后的名称
 */
export function getI18nConstantNameById(constants, id, t) {
  if (!constants || !Array.isArray(constants)) {
    return '';
  }
  
  const item = constants.find(item => item.id === id);
  if (!item) {
    return '';
  }
  
  return item.nameKey && t && typeof t === 'function' ? t(item.nameKey) : item.name;
}

/**
 * 获取所有常量的多语言名称映射
 * @param {Array} constants - 常量数组
 * @param {Function} t - i18n翻译函数，通常是this.$t
 * @returns {Object} ID到多语言名称的映射
 */
export function getI18nConstantMap(constants, t) {
  const map = {};
  
  if (!constants || !Array.isArray(constants)) {
    return map;
  }
  
  constants.forEach(item => {
    map[item.id] = item.nameKey && t && typeof t === 'function' ? t(item.nameKey) : item.name;
  });
  
  return map;
}